This disclosure relates generally to computer systems and, more particularly, relates to generating a hardware design for a system based on a set of configurations.
Modern chips such as System-on-Chip (SoC) chips or Application Specific Integrated Circuit (ASIC) chips may have multiple configurations such as physical I/O (Input/Output) configurations and shared different interfaces. The hardware/system designs, however, may only use a few number of usages for each chip under one configuration. In the meantime, in a complex system design hardware design check may need a significant amount of manual effort to find out whether the usage of each chip under each system configuration is correct.
Additionally, firmware design may need to develop/integrate functions according to hardware/system design (chip usage and system configuration), which can be a time-consuming procedure. For example, if a user wants to connect two chips via the respective PCI (Peripheral Component Interface) or PCIe (PCI express) interfaces, the user may need to expressly indicate the connection relationships between pins of the interfaces interfaces and develop firmware code to initialize or otherwise configure the connection. It would be appreciated that manual operations may be likely to introduce errors and overlook some problems in the design.